/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.tarifador.controller;

import br.com.tarifador.dao.TarifadorDao;

import br.com.tarifador.model.Departamento;
import br.com.tarifador.model.GrupoCorporativo;
import java.util.List;

/**
 *
 * @author charles
 */
public class DepartamentoRN {

    private TarifadorDao<Departamento> dao;
    private Departamento departamento = new Departamento();
    private String messagemCount;

    public boolean salvaDepartamento() {
        dao = new TarifadorDao<Departamento>(Departamento.class);
        boolean valida = false;
        if (departamento != null) {
            valida = dao.save(departamento);
            countDepartamentos();
        }
        return valida;
    }
    public boolean updateDepartamento(Departamento depto) {
        dao = new TarifadorDao<Departamento>(Departamento.class);
        boolean valida = false;
        if (departamento != null) {
            departamento.setId(depto.getId());
            valida = dao.update(departamento);
        }
        return valida;
    }

    public void limparCampos() {
        this.departamento.setDescricao("");
        this.departamento.setGrupo(null);
    }

    public String countDepartamentos() {
        dao = new TarifadorDao<Departamento>(Departamento.class);
        Long valor = dao.countAllObject();
        return this.messagemCount = valor.toString() + " departamentos cadastrados.";
    }

    public boolean deletaDepartamentos(Long iddpto) {
        dao = new TarifadorDao<Departamento>(Departamento.class);
        boolean valida = false;
        if (departamento != null) {
            departamento.setId(iddpto);
            valida = dao.delete(departamento);
            countDepartamentos();
        }
        return valida;
    }

    public List<Departamento> listaDepartamentos() {
        dao = new TarifadorDao<Departamento>(Departamento.class);
        List<Departamento> lista = dao.listall();
        return lista;
    }

    public List<GrupoCorporativo> carregaGrupo() throws NullPointerException {
        TarifadorDao<GrupoCorporativo> dao = new TarifadorDao<GrupoCorporativo>(GrupoCorporativo.class);
        return dao.listall();
    }

    public String sobreDepartamentos() {
        String texto = "O cadastro de departamentos está associado ao usuario do ramal, podem ser dividido por centro de custo";
        return texto;
    }

    public String getMessagemCount() {
        return messagemCount;
    }

    public void setMessagemCount(String messagemCount) {
        this.messagemCount = messagemCount;
    }
    public Departamento getDepartamento() {
        return departamento;
    }

    public void setDepartamento(Departamento departamento) {
        this.departamento = departamento;
    }
}
